#!/bin/bash

#shell方法的返回值或者最后指令的执行状态作为该方法的执行状态，只能表示真假
#shell方法的标准输出可用$(<func_call>),形式获取，用作普通意义上的函数返回值
#local 在方法定义内声明局部变量
#<func_call> arg1 arg2 ... #在方法内使用$1 $2获取

# returns OK if $1 contains $2 
strstr() { 
  [ "${1#*$2*}" != "$1" ] 
}

# replaces all occurrences of 'search' in 'str' with 'replacement'
#
# str_replace str search replacement
#
# example:
# str_replace '  one two  three  ' ' ' '_'
str_replace() {
    local in="$1"; local s="$2"; local r="$3"
    local out=''

    while strstr "${in}" "$s"; do
        chop="${in%%$s*}"
        out="${out}${chop}$r"
        in="${in#*$s}"
    done
    echo "${out}${in}"
}

